Methods, Systems and Computer Program Products for Controlling Tree Diagram Graphical User Interfaces and/or For Partially Collapsing Tree Diagrams

ABSTRACT

Methods for selectively displaying portions of a hierarchical data set on an electronic display comprise the steps of displaying at least a portion of the hierarchical data set on an electronic display in a tree diagram format. Input may then be obtained from a user to identify one or more displayed nodes in the tree diagram that are to be hidden and/or one or more hidden nodes in the tree diagram that are to be displayed. Based on this input, at least one node in the tree diagram is partially collapsed and/or at least one node in the tree diagram may be partially expanded so as to display the hidden nodes identified by the user and so as to hide the displayed nodes identified by the user.

CLAIM OF PRIORITY

This application claims priority as a continuation application from U.S.patent application Ser. No. 10/446,198, filed May 27, 2003, thedisclosure of which is hereby incorporated herein by reference in itsentirety.

FIELD OF THE INVENTION

The present invention relates generally to displaying hierarchical dataon an electronic display or other display device. More particularly, thepresent invention relates to controlling the display of hierarchicaldata that is displayed on “tree diagram” graphical user interfaces.

BACKGROUND OF THE INVENTION

A wide variety of computer operating systems and computer applicationprograms incorporate, display and/or perform operations on data orinformation which is hierarchical in nature. For example, most computeroperating systems provide users access to a hierarchy of directoriesand/or sub-directories where documents, programs and/or otherinformation are stored. Many computer e-mail systems likewise provide ahierarchy of files and/or sub-files in which e-mail messages may bestored. Organizer applications typically allow a user to establish tasklistings and/or store other forms of data which, once again, may behierarchical in nature. The number and variety of computer systems andprograms which store and/or manipulate hierarchical data sets continuesto increase as computer processing applications continue to proliferate.

With the advent and expanded use of graphical user interfaces over thelast fifteen or so years, it has become possible to display all or partof hierarchical data sets to the user of a computer via a “tree diagram”representation. Tree diagrams are particularly useful in displayinghierarchical data as the levels of the tree diagram visually depict thelocation of each piece of data in a way that quickly and intuitivelyconveys to a user both the location of the data within the hierarchy andthe relationship of that data to other data in the hierarchy.Additionally, the hierarchical structure of a tree diagram may allow auser to more quickly and efficiently peruse the data, such as byreviewing the entries at the higher levels to locate particular brancheswhich are most likely to contain the information of interest. A useralso typically can “expand” or “collapse” the tree diagram at variouspoints (i.e., displaying or hiding information in the higher levels ofthe tree) to further facilitate viewing the hierarchical data. Bothcustom programs, as well as tree diagram objects, are known in the priorart for providing a tree diagram graphical user interface to a user. Forexample, FIG. 3 is a screen capture of a prior art application(Microsoft Corporation's Windows Explorer) that includes a display area5 containing hierarchical data displayed using a tree diagram graphicaluser interface.

While the use of tree viewer objects and custom tree viewer programs hasexpanded in recent years, so has the complexity of many of thehierarchical data sets that are displayed to the user via the treediagram. Moreover, as computer memory and processing capabilities haveexpanded, users are now opening up more and more applications at thesame time, resulting in desktop displays that typically have numerouswindows open simultaneously in what may be a confusing, layered displayof icons, windows and the like. Additionally hierarchical data is nowdisplayed using tree diagrams on many mobile computing devices that havedifferent constraints in terms of the size of the display and thecontrol of windows. The complexity of the hierarchical data sets and theproliferation of environments in which they may be used have left a needfor improved graphical user interfaces that display hierarchical data intree diagram form.

SUMMARY OF THE INVENTION

Embodiments of the present invention provide for controlling treediagram graphical user interfaces by selectively displaying portions ofa hierarchical data set on an electronic display. At least a portion ofthe hierarchical data set may be displayed on the electronic display ina tree diagram format, and then input from a user may be obtained toidentify one or more nodes in the tree diagram that are to be hidden.Based on this input, at least one node in the tree diagram is partiallycollapsed to hide the one or more identified nodes. Partially collapsinga node may be performed by collapsing at least one descendant node ofthe node at issue into the node without collapsing all the descendantnodes of the node at issue into the node. User input identifying one ormore nodes in the tree diagram that are to be hidden may be obtained byhaving a user identify the nodes that will remain displayed when anancestor node is partially collapsed.

Likewise, input from the user may be obtained to identify one or morecurrently hidden nodes in the tree diagram that are to be displayed.Based on this input, at least one node in the tree diagram may bepartially expanded to display the identified nodes. Partially expandinga node may be performed by expanding the node to display a subset of itsdescendant nodes such as only some of its children nodes or selectednodes at various descendant node levels.

In further embodiments of the present invention, an indicia is providedon the electronic display that is associated with each partiallycollapsed node and that identifies the node as being a partiallycollapsed node. An ellipsis may be used as this indicia, and may belocated between the partially collapsed node and the first descendantnode of the partially collapsed node that is displayed on the electronicdisplay. Additionally, user input may be obtained to identify one ormore portions of the hierarchical data set that are not currentlydisplayed in the tree diagram and then partially expanding at least onenode in the tree diagram to display the one or more identified portionsof the hierarchical data set.

A dialog box may also be associated with one or more nodes in the treediagram. This dialog box may display at least some of a node'sdescendant nodes to facilitate obtaining input from a user identifyingthe nodes that are to be hidden when a partial collapse function isimplemented. Similarly, the dialog box may alternatively (oradditionally) display at least some of the nodes between the node atissue and the root node to facilitate obtaining the user inputidentifying nodes that are to be hidden when a partial collapse functionis implemented.

In additional embodiments of the present invention, a hierarchical dataset is selectively displayed on an electronic display by displaying aportion of the hierarchical data set on the electronic display in a treediagram format and then obtaining user input to identify one or morehidden nodes in the tree diagram that are to be displayed. Based on thisinput, at least one node in the tree diagram may be partially expandedto display the one or more identified nodes.

As will further be appreciated by those of skill in the art, whiledescribed above primarily with reference to method aspects, the presentinvention may be embodied as methods, apparatus/systems and/or computerprogram products.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of a data processing system suitable for usein embodiments of the present invention.

FIG. 2 is a more detailed block diagram of aspects of a data processingsystem that may be used in embodiments of the present invention.

FIG. 3 is a screen capture of a conventional software program thatprovides a tree diagram graphical user interface.

FIG. 4 depicts a display device on which a tree diagram is displayed.

FIG. 5 depicts the display device and tree diagram of FIG. 4 modified toillustrate a partial collapse of one of the branches in the treediagram.

FIG. 6A depicts the display device and tree diagram of FIG. 4 after aHide Intervening Nodes operation has been performed on the tree diagram.

FIG. 6B depicts the display device and tree diagram of FIG. 4 after aHide Contained Nodes operation has been performed on the tree diagram.

FIG. 7A depicts the display device and tree diagram of FIG. 4 after auser has pulled up a pop-up dialog box associated with one of the nodesin the tree diagram.

FIG. 7B depicts the display device and tree diagram of FIG. 7A after auser has pulled up a second pop-up dialog box associated with one of thenodes in the tree diagram.

FIG. 8A depicts the display device and tree diagram of FIG. 4 where atool bar is further displayed on the display device.

FIG. 8B depicts the display device and tree diagram of FIG. 8A after apartial collapse of the tree diagram has been performed using a HideIntervening Nodes (String) operation.

FIG. 8C depicts the display device and tree diagram of FIG. 4 where atool bar is further displayed on the display device.

FIG. 8D depicts the display device and tree diagram of FIG. 8A after apartial collapse of the tree diagram has been performed using a HideIntervening Nodes (Selected) operation.

FIGS. 9A through 9C depict exemplary icons that may be used with thetree diagram graphical user interfaces of the present invention.

FIGS. 10A through 10D illustrate several “hot” expand and collapseoperations that may be performed using the tree diagram graphical userinterfaces of the present invention.

FIG. 11 is a flowchart of one embodiment of the present invention.

FIG. 12 is a flowchart of another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention now will be described more fully hereinafter withreference to the accompanying drawings, in which illustrativeembodiments of the invention are shown. This invention may, however, beembodied in many different forms and should not be construed as limitedto the embodiments set forth herein; rather, these embodiments areprovided so that this disclosure will be thorough and complete, and willfully convey the scope of the invention to those skilled in the art.Like numbers refer to like elements throughout.

As will be appreciated by one of skill in the art, the present inventionmay be embodied as a method, data processing system, or computer programproduct. Accordingly, the present invention may take the form of anentirely hardware embodiment, an entirely software embodiment or anembodiment combining software and hardware aspects all generallyreferred to herein as a “circuit” or “module.” Furthermore, the presentinvention may take the form of a computer program product on acomputer-usable storage medium having computer-usable program codeembodied in the medium. Any suitable computer readable medium may beutilized including hard disks, CD-ROMs, optical storage devices, atransmission media such as those supporting the Internet or an intranet,or magnetic storage devices.

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language suchas Java®, Smalltalk or C++. However, the computer program code forcarrying out operations of the present invention may also be written inconventional procedural programming languages, such as the “C”programming language. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer. In the latter scenario, theremote computer may be connected to the user's computer through a localarea network (LAN) or a wide area network (WAN), or the connection maybe made to an external computer (for example, through the Internet usingan Internet Service Provider).

The present invention is described in part below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

Embodiments of the present invention provide for selectively displayinghierarchical data in tree diagram format on an electronic display. Manycurrent computer applications require the manipulation and/or display ofhierarchical data sets. To facilitate manipulation and navigation ofsuch data sets, the hierarchical data is typically displayed to the userin tree diagram format on an electronic display.

Various embodiments of the present invention will now be described withreference to the figures. FIG. 1 illustrates an exemplary embodiment ofa data processing system 330 suitable for a server and network trafficassociated with the replicated server in accordance with embodiments ofthe present invention. The data processing system 330 typically includesinput device(s) 332 such as a keyboard, pointer, mouse and/or keypad, adisplay 334, and a memory 336 that communicate with a processor 338. Thedata processing system 330 may further include a speaker 344, and an I/Odata port(s) 346 that also communicate with the processor 338. The I/Odata ports 346 can be used to transfer information between the dataprocessing system 330 and another computer system or a network. Thesecomponents may be conventional components, such as those used in manyconventional data processing systems, which may be configured to operateas described herein.

FIG. 2 is a block diagram of data processing systems that illustratessystems, methods, and computer program products in accordance withembodiments of the present invention. The processor 338 communicateswith the memory 336 via an address/data bus 348. The processor 338 canbe any commercially available or custom microprocessor. The memory 336is representative of the overall hierarchy of memory devices, and maycontain the software and data used to implement the functionality of thedata processing system 330. The memory 336 can include, but is notlimited to, the following types of devices: cache, ROM, PROM, EPROM,EEPROM, flash memory, SRAM, and DRAM.

As shown in FIG. 2, the memory 336 may include several categories ofsoftware and data used in the data processing system 330: the operatingsystem 352; the application programs 354; the input/output (I/O) devicedrivers 358; and the data 356, which may include hierarchical data sets.As will be appreciated by those of skill in the art, the operatingsystem 352 may be any operating system suitable for use with a dataprocessing system, such as OS/2, AIX or System390 from InternationalBusiness Machines Corporation, Armonk, N.Y., Windows95, Windows98,Windows2000 or WindowsXP from Microsoft Corporation, Redmond, Wash.,Unix or Linux. The I/O device drivers 358 typically include softwareroutines accessed through the operating system 352 by the applicationprograms 354 to communicate with devices such as the I/O data port(s)346 and certain memory 336 components. The application programs 354 areillustrative of the programs that implement the various features of thedata processing system 330 and preferably include at least oneapplication which supports operations according to embodiments of thepresent invention. Finally, the data 356 represents the static anddynamic data used by the application programs 354, the operating system352, the I/O device drivers 358, and other software programs that mayreside in the memory 336.

As is further seen in FIG. 2, the application programs 354 may include atree diagram module 360. The tree diagram module 360 may carry out theoperations described herein for selectively controlling the display of ahierarchical data set in a tree diagram representation. While thepresent invention is illustrated, for example, with reference to thetree diagram module 360 being an application program in FIG. 2, as willbe appreciated by those of skill in the art, other configurations mayalso be utilized while still benefiting from the teachings of thepresent invention. For example, the tree diagram module 360 may also beincorporated into the operating system 352, the I/O device drivers 358or other such logical division of the data processing system 330. Thus,the present invention should not be construed as limited to theconfiguration of FIG. 2 but is intended to encompass any configurationcapable of carrying out the operations described herein.

As will be appreciated by those of skill in the art, a tree diagramrefers to a display of data in which the data is arranged in a series oflevels. FIG. 4 depicts an exemplary tree diagram 300 in which the datadisplayed in the tree diagram is arranged in a series of levels 20, 30,40, 50, 60, which are physically offset from each other along thehorizontal axis. The various entries 21, 31-34, 41-47, 51-55, 61-69 thatcomprise each level 20, 30, 40, 50, 60 are referred to herein as “nodes”in the tree diagram. Each such node typically contains data from the setof hierarchical data, such as for example, the data “com” that isdisplayed at node 21. The nodes are arranged in the tree diagram 300 tographically display their hierarchical relationship with other nodes inthe tree diagram 300. As shown in FIG. 4, the nodes may also includeother information, such as, for example, the icons 70 (not all icons arenumbered) that provide information regarding the amount of informationfrom the hierarchical data set that is currently displayed in the treediagram 300.

In the tree diagram 300 of FIG. 4, level 20 is the lowest level of thetree diagram, and level 60 is the highest level. Typically the lowestlevel is referred to as the “root” of the tree diagram or the “rootlevel.” The root level of a tree diagram typically, but not necessarily,includes only a single node. In FIG. 4, the root node is positioned onthe left-most side of the tree diagram, although other orientations maybe used. As shown in FIG. 4, the nodes in higher levels 30, 40, 50, 60branch out from the node (or in some cases, nodes) at root level 20,which is why these diagrams are referred to as “tree” diagrams.

The nodes in a tree diagram may be “leaf” nodes or “non-leaf” nodes. Aleaf node refers to a node that has no other nodes branching out fromit. In FIG. 4, nodes 61-63, 52, 42, 43, 64-67, 45, 54, 68-69 and 34 areleaf nodes. Conversely, non-leaf nodes refer to any nodes (including theroot node or nodes) which has additional nodes branching out from it.All the nodes in FIG. 4 that are not leaf nodes are non-leaf nodes. In atree diagram, where a node branches out from a node at the next lowerlevel, the node at the lower level is referred to as the “parent” nodeand the node at the higher level is referred to as the “child” node. Byway of example, in FIG. 4 node 31 would be the parent of node 41 andnode 41 would be the child of node 31. In situations where more than onenode branch out from a parent node, the nodes at the higher level arecollectively referred to as the “children” nodes of the parent node.Thus, in FIG. 4 nodes 61-63 comprise the children nodes of node 51.Similarly, the nodes that branch out, either directly or indirectly,from a node at a lower level are collectively referred to as the“descendant” nodes of the node from which they branch out from. By wayof example, in FIG. 4 nodes 47, 55 and 68-69 are the descendants of node33. Likewise, a first node is referred to as an “ancestor” node of asecond node if the second node branches out, either directly orindirectly, from the first node. Thus, for example, in FIG. 4 nodes 21,33, 47 and 55 would all be ancestor nodes of node 69.

In many applications, the hierarchical data sets that are to be viewedand/or manipulated are very large. Consequently, the tree diagramscorresponding to these data sets may be very wide (i.e., they have manylevels) and/or very deep (i.e., they have many nodes in one or morelevels). When this occurs, the entire tree diagram may not fit on theuser's electronic display, thus making it more difficult to view andmanipulate the hierarchical data set. While tree diagram graphical userdisplays typically include scrolling mechanisms in the horizontal and/orvertical directions that allow a user access to the entire tree diagram,the user may be interested in portions of the tree diagram that arephysically distant from each other such that time and effort may bewasted scrolling between the views that show the nodes that are ofinterest. This is particularly true given the recent proliferation ofnumerous handheld computing devices such as Personal Data Assistants(“PDA”), inventory tracking handheld computers, cell phones and the likewhich typically have physically small electronic displays.

Because of this problem, prior art tree diagram graphical userinterfaces typically provide capabilities to “collapse” or “expand”nodes to vary the amount of information in the tree diagram that isactually displayed on the electronic display. By way of example, in thetree diagram of FIG. 3 a user may click on the box icons in display area5 (the box icons each have a “+” sign or a “−” sign within the box) to“collapse” or “expand” the node with which each icon is associated. If anode is in a collapsed state, all the descendants of that node arehidden such that the node appears as a leaf node on the electronicdisplay and a “+” sign appears in the box icon (see the node containingthe data “Plug_ins” in FIG. 3). With respect to such a collapsed node,clicking on the “+” sign in the box icon will cause the node to expandby un-hiding (i.e., displaying) all the children nodes of that node.Conversely, a node may be in an expanded state such that at least of thechildren nodes of that node appear on the electronic display. When insuch an expanded state, a “−” sign appears in the box icon (see, forexample, the node containing the data “Access_(—)2.0” in FIG. 3). Withrespect to such an expanded node, clicking on the “−” sign in the boxicon will cause the node to collapse by hiding from view all thedescendant nodes (not just the children nodes) of that node such thatthe node will be in a “fully collapsed” state. Such a fully collapsednode will appear as a leaf node on the electronic display as none of itsdescendant nodes are displayed. Thus, in these conventional tree diagramgraphical user interfaces, a user may expand nodes one level at a timeand fully collapse nodes to vary the amount of data from the treediagram that actually appears in the electronic display. In someinstances, functionality may also be provided that allows the user to“fully expand” a node (i.e., display all the descendant nodes of thenode) with the click of a button.

Embodiments of the present invention provide an expanded set of controlsfor a tree diagram graphical user interface. In particular embodimentsof the present invention, mechanisms for a user to partially collapseand/or partially expand a node such that a user defined subset of thedescendant nodes that branch out from the node are displayed on theelectronic display are provided. By “partially collapsing” a node it ismeant that at least some, but not all, of the descendant nodes of thenode at issue are hidden from view (i.e., they are not displayed on theelectronic display). Likewise, “partially expanding” a node refers toexpanding a node so that at least some, but not all, of the previouslyhidden descendant nodes of the node at issue are added to the display.The term “partially expanding” is not meant to encompass a fullexpansion of the node (i.e., when all the descendant nodes of the nodeare displayed) or a one level expansion of a node (i.e., when a node isexpanded to display all the children of the node but no other descendantnodes). A user can, by partially collapsing various nodes, hide thenodes in the tree diagram that are not of interest, while leaving theremaining nodes displayed. In this way, a user can reduce the number ofnodes that are actually shown on the electronic display such that it ismore likely that the entire non-hidden part of the tree diagram will fitwithin the display, thereby reducing or eliminating the need to scrollthe display.

In some embodiments of the present invention, a control for a treediagram graphical user interface is provided that allows a user topartially collapse an expanded node in the tree diagram. Through thispartial collapse capability, a user may identify a set of nodes along abranch of the tree diagram that are to be collapsed into a higher nodeso that they are no longer displayed on the electronic display. By wayof example, in the tree diagram 300 of FIG. 4 a user might decide topartially collapse node 33 by hiding the nodes between node 33 and nodes68-69. FIG. 5 shows how the tree diagram 300 of FIG. 4 would appear (astree diagram 301) after such a partial collapse was performed. As ismade clear from the description below, a user may also use this partialcollapse capability to further collapse (or, in some embodiments, evenexpand) a partially collapsed node.

In certain embodiments of the present invention, the partial collapsecapability may be implemented as three separate operations that may beapplied to a particular node of the tree diagram. The first of the threeoperations that may be used to implement the partial collapse capabilityis the Hide Intervening Nodes operation. Pursuant to this operation, theuser may collapse the selected node and, if desired, one or more othernodes between the selected node and the root node 21, into a higherancestor node. For example, in the tree diagram 300 of FIG. 4, the HideIntervening Nodes operation could be used with respect to node 69 tohide a subset of the nodes between node 69 and root node 21, such as,for example, nodes 33, 47 and 55. FIG. 6A depicts a tree diagram 302that shows how tree diagram 300 would look after the Hide InterveningNodes operation was used.

The second of the three operations is the Hide Contained Nodesoperation. Pursuant to this operation the user may collapse selected ofthe descendant nodes of a first node into the first node. For example,in the tree diagram 300 of FIG. 4, the Hide Intervening Nodes operationcould be used with respect to node 31 to hide a subset of the descendantnodes of node 31, such as, for example, nodes 41 and 51. FIG. 6B depictsa tree diagram 303 that shows how tree diagram 300 would look after theHide Contained Nodes operation was implemented. The Hide Contained Nodesoperation could also be used to completely collapse a node by selectingall of the descendants of the node as nodes to be hidden.

The final of the three operations is the Hide Me operation, which may beused to hide a selected node. This operation may be set up so thatselection of the Hide Me operation would only hide a selected node,and/or so that it also hides some or all of the descendants of theselected node.

FIGS. 7A and 7B depict operations according to particular embodiments ofthe present invention that may allow a user to partially collapse (orpartially expand) a node in a tree diagram. As shown in FIG. 7A, apop-up dialog box 95 may be provided on the electronic display toprovide access to the “hide” operations. It will be understood that theterm “dialog box” is used herein to refer to any textual, graphical orother message that appears on the display that allows the user to selectfrom a range of choices. This pop-up dialog box 95 could be made toappear, for example, by using the “right click” button on a mouse orother pointer device or by allowing the pointer device to reside in thevicinity of a node for longer than a predetermined period of time. Asillustrated in FIG. 7A, the pop-up dialog box 95 may display arepresentation of the three above-described operations, which the usermay select between using a pointing device, such as a mouse. If the HideIntervening Nodes or the Hide Contained Nodes operations are selected,an additional dialog box 96 may appear to allow the user to select thespecific nodes that are to be hidden (see FIG. 7B).

As will be appreciated by those of skill in the art, the partialcollapse capability and/or access to the “hide” operations may beimplemented in a variety of different ways and thus, the presentinvention is not limited to the specific embodiments disclosed herein.FIGS. 8A and 8B provide another example as to how the partial collapsecapability could be accessed. As shown in FIGS. 8A and 8B, a tool bar 80may be provided on the electronic display. The tool bar 80 may include aplurality of user selectable buttons 81-85 that provide access to thecollapse and expand operations. In the exemplary embodiment of FIGS. 8Athrough 8D, the first control button 81 selects the Hide InterveningNodes (String) operation. As shown in FIG. 8A, when a node in the treediagram is selected and this control button is also selected, a dialogbox 97 appears that “displays” all the nodes between the selected nodeand the root node. (Note that the nodes can be displayed in the dialogbox 97 in a variety of ways—the display method of FIG. 8A in which atleast some of the data from each node is listed in the dialog box is oneof numerous ways in which the node may be displayed). The user may thenselect (for example by using the left button on a mouse or otherpointing device) the two endpoints of a string of intervening nodes(i.e., nodes between the selected node and the root node) that are to behidden. The hide operation may be carried out immediately upon theselection of the second endpoint node.

In the example of FIG. 8A, the user has selected node 67 (“D4java”) of atree diagram 306 and activated the Hide Intervening Nodes (String)operation by pointing at control button 81 and left clicking the pointerdevice. This action caused a dialog box 97 to appear adjacent to toolbar 80 that lists each of the nodes between node 67 and the root of thetree (node 21). The user has already selected node 53 in this dialog boxas first endpoint of the string of nodes that are to be hidden (asindicated by the box that appears around the data “database” associatedwith node 53). Once the user selects the second endpoint, which forexemplary purposes will be the data “ibm” associated with node 31, thetree diagram 306 will change to appear as the tree diagram 307 shown inFIG. 8B.

FIGS. 8C and 8D illustrate how the Hide Intervening Nodes (Selected)operation may operate (control button 82). The Hide Intervening Nodes(Selected) Operation is similar to the Hide Intervening Nodes (String)operation described above, except here the user individually selectseach node that is to be hidden instead of selecting the two endpoints ofa string of nodes that are to be hidden. Thus, for example, in FIG. 8C,the user has selected the Hide Intervening Nodes (Selected) operation(control button 82) after selecting node 67 on the electronic display,and selected the data associated with nodes 51, 61-62, 42-43 and 65-66in the resulting dialog box 98. As illustrated in FIG. 8D, the treediagram 308 of FIG. 8C is modified to provide tree diagram 309 after thecontrol operation is completed so that nodes 51, 61-62, 42-43 and 65-66are hidden.

In the example of FIGS. 8A through 8D, control buttons 84, 85, 86 selectthe Hide Contained Nodes (String), Hide Contained Nodes (Selected), andHide Me operations, respectively. The Hide Contained Nodes (String) andHide Contained Nodes (Selected) operations operate in a manner similarto the Hide Intervening Nodes (String) and Hide Intervening Nodes(Selected) operations described above, except that the “contained node”operations are used to hide nodes that branch out from the selected nodeas opposed to nodes between the selected node and the root node.

The tree diagram graphical user interface embodiments of the presentinvention may also include the capability to partially expand a node.This capability is the converse of the partial collapse function in thatit allows a user to select a subset of the descendants of a collapsednode and then only display the selected subset of nodes on theelectronic display. Like the partial collapse capability, the partialexpand feature may be implemented using dialog boxes, control buttons orany other input mechanism that allows the user to specify the nodes thatare to be displayed (or hidden).

In particular embodiments of the present invention, the partial expandcapability may be implemented as a set of three “unhide” operations thatcorrespond to each of the three “hide” operations described above. Thus,an Unhide Intervening Nodes operation could be associated with nodes inthe tree diagram that would allow the user to display any nodes betweena selected node and the root node that were hidden using the HideIntervening Nodes operation. Likewise, an Unhide Contained Nodesoperation may allow the user to display any selected group of descendantnodes of a selected node. Finally, an Unhide Me operation may display ahidden node. Like the “hide” operations described above, the unhideoperations may provide the capability to select the nodes either bydesignating the endpoints of a string of nodes and/or by individuallyselecting each node that is to be displayed.

Icons may also be associated with various nodes in the tree diagram thatindicate the collapsed/expanded state of the node. FIGS. 9A through 9Cdepict an exemplary set of icons that may be used to visually convey thecollapsed/expanded state of a particular node in the tree diagram. Asshown in FIGS. 9A through 9C, the indicia may comprise an icon that islocated adjacent the data contained in each node of the tree diagram. Asshown in FIG. 9A with respect to nodes 31-34, when the node is fullycollapsed a “+” icon is associated with the node. As shown in FIG. 9B,when a node (for example, node 32) is expanded so that at least all thenodes in the next higher level are displayed, the “+” icon is replacedby a “−” icon. Finally, as shown in FIG. 9C, when a node is partiallycollapsed or partially expanded a “+/−” icon is used to designate thecollapsed/expanded state of the node.

As will also be understood by those of skill in the art, the icontypically may be used to toggle between the different states. Thus, inthe tree diagram 312 depicted in FIG. 9C the user could point tothe—icon and click on it to close the subtree below node 32 (i.e., torevert to the tree diagram 310 of FIG. 9A). Likewise, selecting to the“+” icon next to node 32 in the tree diagram 310 of FIG. 9A will causenode 32 to expand one level such that node 45 and previously hidden node46 will be displayed (see tree diagram 311 in FIG. 9B). With eachsuccessive click the icon will change to reflect the new state of thenode.

Pursuant to the teachings of the present invention, one of severaldifferent actions may occur when a user clicks on a +/− icon. In oneembodiment, the user could use the pointing device to point to eitherthe “+” or the “−” part of the icon to implement an expansion or acollapse of the node. In another embodiment of the invention, clickingon the +/− icon will automatically implement either an expand or acollapse function (which is implemented may be set by the application oruser controllable). In yet another embodiment, clicking on the +/− icon(or alternatively, allowing the cursor to rest on the icon) will cause asecondary menu to appear that will allow the user to choose between atleast two different expand and/or collapse functions.

It will be understood that indicia other than the indicia shown in FIGS.9A through 9C may also be used. For instance, the color, shape or othercharacteristics of the data contained in a node could be changeddepending upon the state of the node (e.g., partially collapsed, fullycollapsed, etc.). Thus, it will be understood that embodiments of thepresent invention are not limited to the exemplary embodiments ofpossible indicia disclosed herein (or to their location with respect tothe nodes), but covers all such indicia, and that the tree diagramgraphical user interface need not include such indicia.

Additionally, an ellipsis (i.e., “. . . ”) or some other indicia may bedisplayed on the electronic display to replace the nodes of a treediagram that have been collapsed into an ancestor node. Such ellipsesare shown, for example, in FIGS. 5, 6A, 6B, 8B, 8D and 9C. Pursuant tofurther embodiments of the present invention, a user may also perform anexpand operation by selecting an ellipsis (via right clicking, forexample) to make a context menu appear adjacent the ellipsis that mayhave, for example, operations functions such as a Show ImmediateChildren operation (that would display any hidden children of the nodejust below the ellipsis) or a Show All Hidden Nodes operation (thatwould remove the ellipsis and display previously hidden nodes in thatsection of the tree diagram).

In further embodiments of the present invention, descendant nodes for anon-leaf node may be manually designated or otherwise marked as “hot”nodes. Additional controls may then be provided that facilitateconfiguring the electronic display to show the partial subset of nodesmarked as “hot” nodes. For instance, controls may be provided throughwhich a user may expand a partially or fully collapsed tree diagram sothat all the nodes that are marked as “hot” nodes are shown on thedisplay. Controls may likewise be provided that partially collapse afully or partially expanded tree diagram so that nodes that are notmarked as “hot” nodes are hidden, but the “hot” nodes remain on thedisplay. Controls could also be provided that that would partiallyexpand a node by showing only those children nodes of the node that havebeen marked as “hot” nodes. A variety of additional controls could beprovided for expanding or collapsing a tree diagram that has “hot” nodesin addition to the examplary functions described herein.

FIGS. 10A through 10C illustrate several possible “hot” expand andcollapse operations that may be used in navigating tree diagrams inwhich nodes have been previously marked as “hot” nodes. FIG. 10A depictsa tree diagram 313 that corresponds to the tree diagram 300 of FIG. 4 ina partially collapsed state. In the example of FIGS. 10A through 10C,nodes 41, 62, 67 and 32-33 have been previously marked by the user as“hot” nodes. The tree diagram graphical user interface may include atool bar (or any other means of accepting user input such as a pull-downmenu) that has control buttons for performing “hot” expansions andcollapses of the tree diagram. For example, a Hot Expand operation maybe provided that allows a user to expand a partially or fully collapsedtree diagram to display all previously displayed nodes, along with allnodes that have been marked as “hot.” FIG. 10B depicts a tree diagram314 that shows what would happen if the Hot Expand function wasimplemented on the tree diagram 313 of FIG. 10A. As shown in FIG. 10B,all the previously displayed nodes would remain displayed, and nodes 41,62 and 67 (all of which were marked as “hot” and previously were hidden)would also be added to the display. As shown in FIG. 10C, a Display HotNodes operation allows a user to display only those nodes of the treediagram that have been marked as “hot” nodes. The root node(s) typicallywould also be displayed.

Controls for performing “hot” expansions and collapses may also beimplemented with respect to specific nodes in the tree diagram 10. Byway of example, FIG. 10D illustrates a tree diagram 316 showing whatwould happen when a Hot Expand operation was carried out with respect tonode 31 on the tree diagram 313 of FIG. 10A. As shown in FIG. 10D,performing the Hot Expand operation with respect to node 31 causes nodes41, 62 and 67 to appear on the tree diagram 316 as these are thedescendant nodes of node 31 that had previously been marked as “hot”nodes. Similarly, a Hot Collapse operation may be carried out withrespect to a particular node to hide all the descendants of the nodethat had not previously been marked as “hot” nodes. It will beappreciated that various other “hot” collapse and “hot” expandoperations could also be provided, and the present invention should notbe considered to be limited to the exemplary operations that arespecifically discussed herein.

Capabilities may also be provided to automatically identify “hot” nodesbased on a set of “filtering” rules. By way of example, the tree diagramgraphical user interface might identify as a “hot” node any node in thetree diagram that the user has selected or operated on recently.Numerous other filtering rules could be used and/or provided, and theoptimum rules will typically vary depending upon the hierarchical dataset at issue. Typically, the filtering rules would be provided as partof the tree diagram graphical user interface, and could be appliedautomatically or, alternatively, the user could select from a menu offiltering rule choices. Such automatic filtering rules may reduce oreliminate the need for a user to manually mark nodes as “hot” nodes, andhence may simplify use of the tree diagram graphical user interface.

Pursuant to additional embodiments of the present invention,capabilities may be provided to save the configuration of nodes in thetree diagram that are displayed on the electronic display. Through thissave feature, a user may save a desired configuration of the treediagram that appears on the display so that this configuration may bemade to appear on demand and/or to automatically appear when the treediagram graphical user interface is opened. In one embodiment, thegraphical user interface saves the configuration of the tree diagramthat appears on the display each time the graphical user interfaceapplication is terminated. This configuration may then automaticallyappear on the display the next time the graphical user interface isopened. A user selectable control may also be provided that allows theuser to display the saved configuration. In another embodiment of theinvention, the user may save a particular configuration that appears onthe display at any time, and may have the option to make any of avariety of saved configurations appear on the display.

The tree user graphical user interfaces of the present invention may beimplemented as part of special purpose applications, as object-orientedprograms, or in any of a variety of different ways known to persons ofskill in the art.

FIGS. 11 and 12 are flowchart illustrations that depict operations fordisplaying portions of a hierarchical data set on an electronic displaypursuant to embodiments of the present invention. As shown in FIG. 11,in one such embodiment at least a portion of the hierarchical data setis first displayed on the electronic display in a tree diagram format(block 200). User input is obtained to identify one or more of thedisplayed nodes in the tree diagram that are to be hidden (block 202).Then at least one node in the tree diagram is partially collapsed tohide the one or more identified nodes (block 204).

As shown in FIG. 12, in another such embodiment at least a portion ofthe hierarchical data set is first displayed on the electronic displayin a tree diagram format (block 210). User input is obtained regardingthe operation to be performed (block 212), and a decision is made basedon whether a collapse or expand operation is selected by the user (block214). If a collapse operation is selected at block 214, user input isobtained identifying the nodes that are to be hidden by the collapseoperation (block 216). At least one node on the tree diagram then ispartially collapsed to hide the identified nodes (block 218). An indiciaidentifying that at least one node depicted on the electronic display isa partially collapsed may also be displayed (block 219). If an expandoperation is selected at block 214, user input is obtained identifyingthe nodes that are to be displayed by the expand operation (block 220).At least one node on the tree diagram then is partially expanded todisplay at least some of the identified nodes (block 222). An indiciaidentifying that at least one node depicted on the electronic display isa partially expanded node may also be displayed (block 224).

The flowcharts and block diagrams of FIGS. 1, 2 and 11-12 illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products for selectivelycontrolling tree diagram graphical user interfaces according to variousembodiments of the present invention. In this regard, each block in theflow charts or block diagrams may represent a module, segment, orportion of code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblocks may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also beunderstood that each block of the block diagrams and/or flowchartillustrations, and combinations of blocks in the block diagrams and/orflowchart illustrations, can be implemented by special purposehardware-based systems which perform the specified functions or acts, orcombinations of special purpose hardware and computer instructions.

In the drawings and specification, there have been disclosed typicalillustrative embodiments of the invention and, although specific termsare employed, they are used in a generic and descriptive sense only andnot for purposes of limitation, the scope of the invention being setforth in the following claims.

1. A method for selectively displaying portions of a hierarchical dataset on an electronic display, the method comprising: displaying at leasta portion of the hierarchical data set on the electronic display in atree diagram format; obtaining user input to identify one or more nodesin the tree diagram that are to be hidden; and partially collapsing afirst node in the tree diagram to hide the one or more identified nodes,wherein the partial collapse comprises collapsing the first node to hidesome, but not all, of the children nodes of the first node.
 2. Themethod of claim 1, further comprising providing an indicia on theelectronic display associated with the first node that identifies thefirst node as being a partially collapsed node.
 3. The method of claim2, wherein the indicia comprises an ellipsis.
 4. The method of claim 1,further comprising: obtaining user input to identify one or moreportions of the hierarchical data set that are not currently displayedin the tree diagram; and partially expanding at least one node in thetree diagram to display the one or more identified portions of thehierarchical data set.
 5. The method of claim 1, wherein the electronicdisplay is part of a handheld computing device.
 6. The method of claim2, further comprising selecting the indicia.
 7. The method of claim 6,wherein the selection of the indicia causes the first node to fullycollapse.
 8. The method of claim 2, wherein selecting one portion of theindicia effects a complete collapse of the first node and whereinselecting a different portion of the indicia effects a full expansion ofthe first node indicia.
 9. The method of claim 1, further comprisingsaving to a memory storage device the current configuration of nodesdisplayed on the electronic display.
 10. The method of claim 9, whereinsaving to a memory storage device the current configuration of nodesdisplayed on the electronic display comprises having a user associate aname with the current configuration and saving the current configurationand the associated name to the memory storage device.
 11. The method ofclaim 9, wherein saving to a memory storage device the currentconfiguration of nodes displayed on the electronic display comprisessaving the current configuration of nodes displayed on the electronicdisplay when an application used to display the hierarchical data isterminated.
 12. A method for selectively displaying portions of ahierarchical data set on an electronic display, the method comprising:displaying a portion of the hierarchical data set on the electronicdisplay in a tree diagram format; obtaining user input to identify oneor more hidden nodes in the tree diagram that are to be displayed; andactivating a partial expand operation to partially expand at least onenode in the tree diagram to display the one or more identified hiddennodes.
 13. The method of claim 12, wherein activating a partial expandoperation to partially expand at least one node comprises expanding theat least one node to display at least a direct descendant node and anindirect descendant node of the at least one node without fullyexpanding the at least one node.
 14. The method of claim 13, furthercomprising providing an indicia on the electronic display associatedwith each partially expanded node that identifies the node as being apartially expanded node.
 15. The method of claim 12, wherein a dialogbox is associated with the at least one node that is used to obtain theuser input identifying the one or more undisplayed nodes in the treediagram that are to be displayed.
 16. A system for controlling thedisplay of hierarchical data in a tree diagram on an electronic displaycomprising: means for partially collapsing an expanded node in the treediagram so that only some, but less than all, of children nodes of theexpanded node are displayed on the electronic display; and means forpartially expanding a collapsed node in the tree diagram so that some,but less than all, of hidden descendants of the collapsed node aredisplayed on the electronic display.
 17. The system of claim 16, furthercomprising means for obtaining user input for identifying the descendantnodes of the expanded node that will remain displayed when the expandednode is partially collapsed.
 18. The system of claim 16, furthercomprising means for obtaining user input for identifying the descendantnodes of the collapsed node that will be displayed when the collapsednode is partially expanded.
 19. The system of claim 18, wherein themeans for obtaining user input comprises a dialog box that displays atleast some of the collapsed node's descendant nodes.